package classesBD;

import aplicacao.funcoes;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Pessoal
 */
public class TipoRelacionamento implements tabela{
  //Constantes de Peso de cada relacionamento
  static final int PESO_AUTORIA = 1;
  static final int PESO_EDITORACAO = 2;
  
  
  
  private int peso;
  private boolean status;
  private String tipo;
  private int idTipoRel;

  public TipoRelacionamento(int peso, boolean status, String tipo) {
    this.peso = peso;
    this.status = status;
    this.tipo = tipo;
  }

  public String getTipo() {
    return tipo;
  }
  
  

  @Override
  public int insere(boolean checaExistencia) {
    idTipoRel = existe(tipo);
    if (idTipoRel == 0){
        try {
            String[] campos = new String[4];
            campos[0] = "DEFAULT";
            campos[1] = Integer.toString(peso);
            campos[2] = funcoes.boolToStr(status);
            campos[3] = tipo;
            String query = funcoes.montaInsert("TIPORELACIONAMENTO", campos);
            idTipoRel = Conexao.executa(query, true);
            Conexao.fecha();
        } catch (SQLException ex) {
            Logger.getLogger(TipoRelacionamento.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return idTipoRel;
    
  }

  @Override
  public void buscaPorId(int id) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  public void buscaPorNome(String nome) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  public String existe(int id) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  public int existe(String nome) {
    String query = "SELECT IDTIPOREL FROM TIPORELACIONAMENTO WHERE TIPO=" + funcoes.quotedStr(nome);
    String[][] retorno = Conexao.pesquisa(query, 1);
    if (retorno.length > 0){
      return Integer.parseInt(retorno[0][0]);
    }else{
      return 0;
    }
  }

  @Override
  public boolean preencheAttr(String attr, String valor) {
    String atributo = attr.toLowerCase();
    boolean result = true;
    switch(atributo){
      case "peso":peso = Integer.parseInt(valor);
        break;
      case "status": status = funcoes.strToBool(valor);
        break;
      case "tipo": tipo = valor;
        break;  
      default: result = false;
    }  
    return result;
  }
}
